package sv.gob.mh.dgii.model;

// Generated Apr 28, 2010 4:04:55 PM by Hibernate Tools 3.3.0.GA

import java.io.Serializable;
import java.sql.Blob;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * GoCasoTecnicoDocumento generated by hbm2java
 */
@Entity
@Table(name = "GO_CASO_DOCUMENTO", schema = "GESOMISOS")
@SequenceGenerator(name = "seq_go_caso_documento", sequenceName = "seq_go_caso_documento")
public class GoCasoDocumento implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5195484992772683148L;
	private Long ndocumento;
	private GoCaso goCaso;
	private GoTecnico goTecnico;
	private Integer bactivo;
	private Date fhIngreso;
	private String tipoDocumento;
	private Long cdeclaracion;
	private String nombreArchivo;
	private String extArchivo;
	private String ctArchivo;
	private Blob archivo;
	private String comentario;
	private String referencia;

	public GoCasoDocumento() {
	}

	public GoCasoDocumento(Long ndocumento, GoCaso goCaso, GoTecnico goTecnico,
			Integer bactivo, String nombreArchivo, String extArchivo,
			String ctArchivo, Blob archivo) {
		this.ndocumento = ndocumento;
		this.goCaso = goCaso;
		this.goTecnico = goTecnico;
		this.bactivo = bactivo;
		this.nombreArchivo = nombreArchivo;
		this.extArchivo = extArchivo;
		this.ctArchivo = ctArchivo;
		this.archivo = archivo;
	}

	public GoCasoDocumento(Long ndocumento, GoCaso goCaso, GoTecnico goTecnico,
			Integer bactivo, Date fhIngreso, Long cdeclaracion,
			String nombreArchivo, String extArchivo, String ctArchivo,
			Blob archivo, String comentario) {
		this.ndocumento = ndocumento;
		this.goCaso = goCaso;
		this.goTecnico = goTecnico;
		this.bactivo = bactivo;
		this.fhIngreso = fhIngreso;
		this.cdeclaracion = cdeclaracion;
		this.nombreArchivo = nombreArchivo;
		this.extArchivo = extArchivo;
		this.ctArchivo = ctArchivo;
		this.archivo = archivo;
		this.comentario = comentario;
	}

	/**
	 * @return the ndocumento
	 */
	@Id
	@Column(name = "N_DOCUMENTO", unique = true, nullable = false, precision = 18, scale = 0)
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "seq_go_caso_documento")
	public Long getNdocumento() {
		return ndocumento;
	}

	/**
	 * @param ndocumento
	 *            the ndocumento to set
	 */
	public void setNdocumento(Long ndocumento) {
		this.ndocumento = ndocumento;
	}

	/**
	 * @return the goCaso
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns( {
			@JoinColumn(name = "N_CASO", referencedColumnName = "N_CASO", nullable = false),
			@JoinColumn(name = "C_PLANES", referencedColumnName = "C_PLANES", nullable = false) })
	public GoCaso getGoCaso() {
		return goCaso;
	}

	/**
	 * @param goCaso
	 *            the goCaso to set
	 */
	public void setGoCaso(GoCaso goCaso) {
		this.goCaso = goCaso;
	}

	/**
	 * @return the goTecnico
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "I_TECNICO", nullable = false)
	public GoTecnico getGoTecnico() {
		return goTecnico;
	}

	/**
	 * @param goTecnico
	 *            the goTecnico to set
	 */
	public void setGoTecnico(GoTecnico goTecnico) {
		this.goTecnico = goTecnico;
	}

	/**
	 * @return the bactivo
	 */
	@Column(name = "B_ACTIVO", nullable = false, precision = 1, scale = 0)
	public Integer getBactivo() {
		return bactivo;
	}

	/**
	 * @param bactivo
	 *            the bactivo to set
	 */
	public void setBactivo(Integer bactivo) {
		this.bactivo = bactivo;
	}

	/**
	 * @return the fhIngreso
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(insertable = false, name = "FH_INGRESO", length = 7)
	public Date getFhIngreso() {
		return fhIngreso;
	}

	/**
	 * @param fhIngreso
	 *            the fhIngreso to set
	 */
	public void setFhIngreso(Date fhIngreso) {
		this.fhIngreso = fhIngreso;
	}

	/**
	 * @return the tipo_documento
	 */
	@Column(name = "TIPO_DOCUMENTO", length = 2)
	public String getTipoDocumento() {
		return tipoDocumento;
	}

	/**
	 * @param tipoDocumento
	 *            the tipo_documento to set
	 */
	public void setTipoDocumento(String tipoDocumento) {
		this.tipoDocumento = tipoDocumento;
	}

	/**
	 * @return the cdeclaracion
	 */
	@Column(name = "C_DECLARACION", precision = 18, scale = 0)
	public Long getCdeclaracion() {
		return cdeclaracion;
	}

	/**
	 * @param cdeclaracion
	 *            the cdeclaracion to set
	 */
	public void setCdeclaracion(Long cdeclaracion) {
		this.cdeclaracion = cdeclaracion;
	}

	/**
	 * @return the nombreArchivo
	 */
	@Column(name = "NOMBRE_ARCHIVO", nullable = false, length = 50)
	public String getNombreArchivo() {
		return nombreArchivo;
	}

	/**
	 * @param nombreArchivo
	 *            the nombreArchivo to set
	 */
	public void setNombreArchivo(String nombreArchivo) {
		this.nombreArchivo = nombreArchivo;
	}

	/**
	 * @return the extArchivo
	 */
	@Column(name = "EXT_ARCHIVO", nullable = false, length = 5)
	public String getExtArchivo() {
		return extArchivo;
	}

	/**
	 * @param extArchivo
	 *            the extArchivo to set
	 */
	public void setExtArchivo(String extArchivo) {
		this.extArchivo = extArchivo;
	}

	/**
	 * @return the ctArchivo
	 */
	@Column(name = "CT_ARCHIVO", nullable = false, length = 100)
	public String getCtArchivo() {
		return ctArchivo;
	}

	/**
	 * @param ctArchivo
	 *            the ctArchivo to set
	 */
	public void setCtArchivo(String ctArchivo) {
		this.ctArchivo = ctArchivo;
	}

	/**
	 * @return the archivo
	 */
	@Column(name = "ARCHIVO", nullable = false)
	public Blob getArchivo() {
		return archivo;
	}

	/**
	 * @param archivo
	 *            the archivo to set
	 */
	public void setArchivo(Blob archivo) {
		this.archivo = archivo;
	}

	/**
	 * @return the comentario
	 */
	@Column(name = "COMENTARIO", length = 600)
	public String getComentario() {
		return comentario;
	}

	/**
	 * @param comentario
	 *            the comentario to set
	 */
	public void setComentario(String comentario) {
		this.comentario = comentario;
	}

	/**
	 * @return the referencia
	 */
	@Column(name = "REFERENCIA", length = 300)
	public String getReferencia() {
		return referencia;
	}

	/**
	 * @param referencia
	 *            the referencia to set
	 */
	public void setReferencia(String referencia) {
		this.referencia = referencia;
	}

}
